package com.portal.incurridos.persistence.dao;

import com.portal.incurridos.persistence.enumeration.StateTransactionEnum;
import com.portal.incurridos.persistence.wall.Incurred;

/**
 * @author Alan Dávila
 * e-mail ustargab@gmail.com
 * date 23/11/2013 22:01:26
 */
public interface IncurredDao {

	/**
	 * Get the information about a existing incurred.
	 * @param incurred Identifier of required incurred.
	 * @return Object with the information.
	 */
	Incurred get(final Long incurred);
	/**
	 * Create a new incurred.
	 * @param incurred Object to create.
	 * @return A new object.
	 */
	Incurred create(final Incurred incurred);
	/**
	 * Update a existing incurred.
	 * @param incurred Incurred will be create.
	 * @return State of the operation.
	 */
	StateTransactionEnum update(final Incurred incurred);
	/**
	 * Delete a existing incurred.
	 * @param incurred Object to delete.
	 * @return State of the operation.
	 */
	StateTransactionEnum delete(final Incurred incurred);
}
